﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BGCOP.CAVTOP.BUSINESSLAYER
{
    public class Parqueaderos
    {
        public List<TParqueo> ListarTodos()
        {
            masterDBACEntities db = new masterDBACEntities();
            var modv = from d in db.TParqueo orderby d.nParqueo ascending select d;
            return modv.ToList();
        }
        public void Agregar(string parqueo, DateTime fechaC, int usuarioAct, string observaciones = "Sin Observaciones")
        {
            TParqueo tmp = new TParqueo();
            tmp.nParqueo = parqueo;
            tmp.observacionesParqueo = observaciones;
            tmp.fechaUltimaGestion = fechaC;
            tmp.usuarioUltimaGestion = usuarioAct;
            masterDBACEntities db = new masterDBACEntities();
            db.AddToTParqueo(tmp);
            db.SaveChanges();
        }
        public void Eliminar(int id)
        {
            masterDBACEntities db = new masterDBACEntities();
            TParqueo te = db.TParqueo.FirstOrDefault(c => c.idParqueadero == id);
            db.TParqueo.DeleteObject(te);
            db.SaveChanges();
        }
        public void Modificar(int id, string pNuevo, DateTime fechaC, int usuarioUg, string observaciones = "Sin Observaciones")
        {

            masterDBACEntities db = new masterDBACEntities();
            TParqueo te = db.TParqueo.FirstOrDefault(c => c.idParqueadero == id);
            if (te != null)
            {
                te.nParqueo  = pNuevo;
                te.observacionesParqueo = observaciones;
                te.fechaUltimaGestion = fechaC;
                te.usuarioUltimaGestion = usuarioUg;
                db.SaveChanges();
            }

        }
        public void liberarParqueo(string placa)
        {
            using (masterDBACEntities db = new masterDBACEntities())
            {
                var objX = (from k1 in db.TParqueo where k1.ocupadopor == placa select k1).FirstOrDefault();
                if (objX != null)
                {
                    objX.ocupadopor = "";
                    objX.estaocupado = false;
                    db.SaveChanges();
                }
            }
        }

    }
}
